//
//  GTFlutterGlobalConfigBuilder.swift
//  lib_core
//
//  Created by Shper on 2024/5/15.
//

import Foundation

open class GTFlutterGlobalConfigBuilder {
    
    // 是否为发布包
    public var publishBuild = true;
    // 当前环境类型
    // prod: 生产环境, pre: 预发布环境, test: 测试环境
    public var envType: String = "prod"
    // 获取 经过竞速后的 域名
    public var baseUrlFun: (() -> String) = { "" }
    // 获取 当前深色模式
    public var darkModeFun: (() -> Bool) = { false }
    // 获取 当前语言
    public var languageFun: (() -> String) = { "cn" }
    // 获取 当前红涨绿跌设置
    public var hzldModeFun: (() -> Bool) = { false }
    // 字体放大/缩小比例
    public var textScaleFactorFun: (() -> Float) = { 1.0 }
    // 主工程版本号
    public var versionName: String = "0.0.0";
    // 主工程版本Code
    public var versionCode: String = "0";
    // 0:专业版，1:简洁版，2:土耳其分站，3:马耳他分站, 4:大陆版本, 5:香港站, 6:美国站, 7:加拿大站
    // 100: GateWalletApp
    public var appType: String = "0";
    // Android 专用  0：官网，1：GooglePlay，2：HuaWei AppGallery
    // iOS 暂时不需要 只有 AppStore
    public var appStoreType: String = "0";
    
    public init() {}
    
    open func toDic(customDarkMode: Bool? = nil) -> [String: Any]  {
        var dic: [String: Any] = [
            "publishBuild": self.publishBuild,
            "envType": self.envType,
            "darkMode": self.darkModeFun(),
            "language": self.languageFun(),
            "hzldMode": self.hzldModeFun(),
            "baseUrl": self.baseUrlFun(),
            "textScaleFactor": self.textScaleFactorFun(),
            "versionName": self.versionName,
            "appType": self.appType,
            "appStoreType": self.appStoreType]
        
        // customDarkMode 存在时，覆盖 darkMode设置
        if (customDarkMode != nil) {
            dic["darkMode"] = customDarkMode
        }
        
        // versionCode 转成 Int
        if let intValue = Int(self.versionCode) {
            dic["versionCode"] = intValue
        } else {
            dic["versionCode"] = 0
        }

        return dic
    }
    
}
